home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
dskut
/
ct50a.zip
/
CT50A.DOC
< prev
next >
Wrap
Text File
|
1993-06-18
|
16KB
|
345 lines
Program: Cache Test Copyright 1993 All Rights Reserved
Version: 5.0 a
Author: George Spafford
Date: June 18, 1993
PURPOSE:
To allow users to objectively test the effectiveness of their disk caching
software. Cache Test is an independent product and is not supported by
any manufacturer.
GROUNDWORK:
Cache Test tests drive performance by writing data to a specified, or the
default, drive. Sequential tests are performed by writing randomly generated
fixed length strings to a DOS Text file. Each record consists of n number of
identical characters plus a carriage return (ASCII 13) and line feed (ASCII 10).
By default, the program writes 513 byte records. This translates to 511 bytes
in the record plus the CR and LF. If we were to imagine 8 character records,
and that ^ is a CR and + is a LF then the data looks like this.
aaaaaaaa^+
33333333^+
--------^+
zzzzzzzz^+
The characters that make up the record are randomly generated. The random
routine is seeded by the timer tick every time it is called to increase the
random selections. Characters range from ASCII 32 to ASCII 252.
Random records are written to the disk using a random access file structure.
Each record consists of randomly generated bytes and two record separator
characters. As with the sequential file structure, the number of characters
written to the disk is the specified record size - 2 + 2 record separators.
It is very similar to the sequential except that it allows random movement
through the file.
You can view any off these files by pushing CONTROL-BREAK during their creation
and then use your favorite disk editor or file viewer.
The "DIR Test" consists of Cache Test reading the root directories of either
the specified or default drive and then reading the files in those directories.
It will repeat this process until it reaches the required number of reads.
The more directories you have in your root the better. To be specific,
it reads the tree and then counts the number of files in each directory.
The value you see it totaling is the number of files + the number of directories
+ 1 root directory. However, it will keep incrementing by looping the test
until the desired number of reads has taken place. Now, let's say that you
run the default 10,000 record (count) test. Let's also say that you have a
drive witth 2,500 files and directories - the program will need to loop through
the drive 4 times in order to meet its test requirements. If you limit the
number of records to 2,500 by using the command switch /N:2500 then it will
only need to read the tree once.
Usage:
CT [switches]
MAKE SURE YOU HAVE SPACES BETWEEN THE SWITCHES - IF YOU DO NOT, CT
WILL NOT BE ABLE TO INTERPRET THE SWITCHES CORRECTLY.
/A Performs all tests [this is the default if just CT
is run].
/C Specifies that the /L: log file is to be created and
not simply appended to.
/D Perform DOS directory services test.
/D:d Drive to test. "d" is the drive letter.
/L:logto Specifies the file name or device to log to.
"logto" is the name. By default, data is appended to
this. /C must be specified if you want to create a
new file and NOT append.
/N:nnnn Specifies how many records to write. "nnnn" is the
number. 10,000 is the default.
If you are processing a directory test, this is how
many directory entry reads that CT will perform.
/P:pppp Specifies the number of test passes. "pppp" is the
number. 1 is the default.
/R Perform random access tests.
/S Perform sequential tests.
/S:sss Specifies the individual record sizes. "sss" is the
record size. The default is 513 bytes. Specify the
total size that you want a record to be.
THE MAXIMUM VALUE FOR THIS IS 16,384. IF YOU GET A
STRING SPACE ERROR, YOU WILL NEED TO MAKE THIS VALUE
SMALLER THAN WHAT YOU SET IT AT. A small hint is
to set your sizes = to a factor of your sector size
+ 1 byte. My sectors are 512, as are most peoples, and
then add 1 = the 513 byte default record size.
/W Pause after each screen.
/X Exclude screen writes during the testing phase to
remove the video bottlenecks.
Use /A to run all tests. /D /R /S specify individual tests.
Examples:
CT /N:1000 /P:5 /W 1000 record test, 5 passes, wait after each
screen completes.
CT /N:5000 /S:1025 5000 record test, 1025 byte records.
CT /N:5000 /W /R /D 5000 record test, wait after each screen,
perform only the random and directory tests.
CT /L:PRN Perform the default test one time and log it
the printer.
THE DISPLAY:
Please note that the total time values will not add up to the displayed
individual test times. This is because I have used double-precision floating
point variables to hold my timer values. While you see only two decimal
places on the screen, there are a bunch that you do not see. The total values
are the result of the summation of the individual test scores, the totals are
not timed results - they are mathematical results subject to errors in rounding.
Also, the averages column is calculated by adding the floating point numbers
together and then dividing by the current pass number - NOT the total number
of passes.
STOPPING THE PROGRAM:
CONTROL-BREAK will terminate the program execution safely. Note, you will
probably leave a file named ##TEST##.CT in the root directory of the drive
that you were testing. You will need to delete that by hand OR CT will delete
it the next time it is run.
HISTORY:
v5.0a 06/18/93
The directory test bombed on drives with over 250 directories
on them. The program will now process 500 entries before looping.
This means that if you have 1000 directories, the program will
only actually use 500 of them to perform its tests.
Also, the program checked for disk space before it performed the
directory tests - this is not necessary and now space is only
checked before the sequential and random tests are performed.
v5.0 06/08/93
Can you say "Major Revision?" This version was rebuilt from the
ground up and shares very little with previous versions.
Some of the modifications in this program are a direct result from
input by Herb Chong. If it wasn't for Herb's input, the DIR test
wouldn't be here and test data wouldn't be randomly generated.
Thank you very much Herb.
A lot of the command line switches have changed. You may need
to invoke CT with the /? to see the new ones.
Things that are new:
- Changed switches
- Changed tests
- Changed reporting
- Changed compiler
- Changed my office!
v4.3c 07/09/92 pm
Heck ... I can't win for losing. I have spent several hours now
debugging the variable overflow problem. I believe that they
have all been eliminated now.
To say "sorry," you can have VT 1.1 also if you choose to register
(or are already registered to) Cache Test - this j